//????????????????
var datatable = null;
//???????????????
//4??????????? ???????,??????????????????????????
var db = openDatabase('MyData','','My Database',102400);
//init()?????????????????????????????????????????????????
function init(){
	//?????????????????????????????
     datatable = document.getElementById("datatable");
     
     //?????????????????????????
     showAllData();
}

//removeAllData()?????????????????????????????????????????????????????
function removeAllData(){

	//?????????<table>????????????????????
	//???????????????datatable???????????
	for(var i=datatable.childNodes.length-1;i>=0;i--){
	 datatable.removeChild(datatable.childNodes[i]);
	}

	//?????????????????????????????<tr>?????????<th>
	//??????????????????
	var tr= document.createElement('tr');
	//??????????????
	var th1=document.createElement('th');
	//??????????????
	var th2=document.createElement('th');
	//???????????????
	var th3=document.createElement('th');
	//??????????????
	var th4=document.createElement('th');
	//??????????????
	var th5=document.createElement('th');
	//???????????????
	var th6=document.createElement('th');
	//??????????????
	var th7=document.createElement('th');
	//?????????????????
	th1.innerHTML="????";
	th2.innerHTML="???";
	th3.innerHTML="????";
	th4.innerHTML="?????";
	th5.innerHTML="??????";
	th6.innerHTML="????";
	th7.innerHTML="???";
	//???????????????????????
	tr.appendChild(th1);
	tr.appendChild(th2);
	tr.appendChild(th3);
	tr.appendChild(th4);
	tr.appendChild(th5);
	tr.appendChild(th6);
	tr.appendChild(th7);
	//????????????????????????
	datatable.appendChild(tr);
}
  
 //????????????????????????HTML??????????????????????????????????
  function showData(row){
      //????????????????????????????
      var tr= document.createElement('tr');

      //?????????????????????
      var td1=document.createElement('td');
      //???????????????????stuNo
      td1.innerHTML=row.stuNo;
      //??????????????????????
      var td2=document.createElement('td');
      //???????????????????name
      td2.innerHTML=row.name;
      //?????????????????????????
      var td3=document.createElement('td'); 
      //???????????????????course
      td3.innerHTML=row.course;
	  //??????????????????????
      var td4=document.createElement('td'); 
      //???????????????????gradepoint
      td4.innerHTML=row.gradepoint;
	  //?????????????????????????
      var td5=document.createElement('td'); 
      //???????????????????term
      td5.innerHTML=row.term;
	  //??????????????????????????
      var td6=document.createElement('td'); 
      //???????????????????midGrade
      td6.innerHTML=row.midGrade;
	  //?????????????????????????
      var td7=document.createElement('td'); 
      //???????????????????finalGrade
      td7.innerHTML=row.finalGrade;
     
      //??????????????????
      tr.appendChild(td1);
      tr.appendChild(td2);
      tr.appendChild(td3);
	  tr.appendChild(td4);
	  tr.appendChild(td5);
	  tr.appendChild(td6);
	  tr.appendChild(td7);

     //?????????????????????
      datatable.appendChild(tr);
  }
  //???
  function deleteData(){
	  db.transaction(function(tx){
		  tx.executeSql('DELETE FROM InfoData',[],function(tx,rs){});
	  });
  }
  //???????????????????????????????????????????????????????
  function showAllData(){
     //????SQLite?????????,??????????????????????????????????
     db.transaction(function(tx){
         //?????????????????????????7?????
         tx.executeSql('CREATE TABLE IF NOT EXISTS InfoData(stuNo TEXT, name TEXT, course TEXT, gradepoint TEXT, term TEXT, midGrade TEXT, finalGrade TEXT)',[]);
         //?????????????????????????????????????????????????????????????????????????? (?????????)??
         //????????????????????????????????????
         tx.executeSql('SELECT * FROM InfoData',[],function(tx,rs){
             
             //????????????????????????????????<table>??????????
            removeAllData();
             //?????????????????????????????showData????table??????????html???
             for(var i=0;i<rs.rows.length;i++){
                 //????item(i)?????????????????????????????????????????????????HTML????
                 showData(rs.rows.item(i));
             }
         });
     }
  
    );
  }
  
  //????????????????????????????????????????????????????
  function addData(stuNo,name,course,gradepoint,term,midGrade,finalGrade){
     //????????????????
    //??????????????????????????????????????????InfoData??????????????????????????????????
     db.transaction(function(tx){
         
        //?????????????????
         //????????????????????????????????
         tx.executeSql('INSERT INTO InfoData VALUES(?,?,?,?,?,?,?)' , [stuNo,name,course,gradepoint,term,midGrade,finalGrade],function(tx,rs){
             console.log("???????????!");
        },
        //????????????????????????????????????
         function(tx,error){
             console.log(error.source+"::"+error.message);
         });
     }
     
    );
  }
  
 //????????????????????????????????????I??????????????
  function saveData(){
     //??HTML????????7???????????
	 var stuNo=document.getElementById('stuNo').value;
     var name=document.getElementById('name').value;
     var course=document.getElementById('course').value;
	 var gradepoint=document.getElementById('gradepoint').value;
	 var term=document.getElementById('term').value;
	 var midGrade=document.getElementById('midGrade').value;
	 var finalGrade=document.getElementById('finalGrade').value;
    
     //??????????????????????
     addData(stuNo,name,course,gradepoint,term,midGrade,finalGrade);
     //????????<p id="msg">???????
     showAllData();
  }

  //??????????????????????????????????????????????????
  function selectData(){
	removeAllData();
	//??HTML??????????????????????????????????????????
	var term=document.getElementById('selectterm').value;
	var course=document.getElementById('selectcourse').value;
	course = course.replace( /^\s+|\s+$/g, "" );
	
	db.transaction(function(tx){
         
         //??????????????????????????????????
         //????????????????????????????????????
         tx.executeSql('SELECT * FROM InfoData',[],function(tx,rs){
            
             //?????????
			 var len = rs.rows.length, i;
             for(i=0;i<len;i++){
                 msg_term = rs.rows.item(i).term;
				 msg_course = rs.rows.item(i).course;
				 //??????????
				 msg_course = msg_course.replace( /^\s+|\s+$/g, "" );
				 
				 if((msg_course == course && msg_term==term)||(msg_term == term && course.length == 0)){
					 showData(rs.rows.item(i));
				 }
				 else{
				 }
				    
             }
         },null);
     }
  
    );
	
 }


  
